home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-15 / raidmk11.zip / RAIDMARK.DOC < prev    next >
Text File  |  1993-01-18  |  32KB  |  677 lines

  1.  
  2.  
  3.  
  4.  
  5.                        Benchmarking Storage Systems
  6.  
  7.                                 White Paper
  8.                                     by
  9.                                Ohad I. Unna
  10.  
  11.                       DynaTek Automation Systems Inc.
  12.  
  13.  
  14.  
  15.  
  16.                               September, 1992
  17.  
  18.  
  19.  
  20.  
  21.                        Benchmarking Storage Systems
  22.  
  23.                                  Abstract
  24.  
  25.   Existing  disk  benchmarking  programs  fall  short  in  measuring  the
  26.   performance  of the  storage  subsystem as  a whole,  in  the sense  of
  27.   missing  the forest  for the  trees. In  order to  obtain a  meaningful
  28.   performance  index of a  storage subsystem that  is congruent with  the
  29.   user-perceived  usefulness of that system,  a benchmark has to  measure
  30.   the  performance in an  application-level manner, simulating  real-life
  31.   computing environments.  A method for constructing such a  benchmark is
  32.   presented in this paper.
  33.  
  34.  
  35.                                   Forward
  36.                                     or
  37.                Who needs another disk benchmarking program?
  38.  
  39.   It is  said that if you have a watch  you know what time it is,  but if
  40.   you  have two --  you are never  sure. If  you have half  a dozen  disk
  41.   benchmarking  utilities,  you  probably  have  six  different  sets  of
  42.   results,  and there's  a good  chance none  of these  results bear  any
  43.   resemblance to the way your system performs under its normal workload.
  44.  
  45.   Back in the old days (1982-3) things were  pretty simple - PC hard disk
  46.   drives were invariably spinning at 3600  revolutions per minute, almost
  47.   always had 17 sectors per  track, and built-in bad-sector remapping and
  48.   multi-megabyte cache  were practically unheard of in  the microcomputer
  49.   world. When the IDE and SCSI disk interfaces  were introduced to the PC
  50.   arena,  things  got  really complicated;  disk  drive  vendors  started
  51.   employing  sector-mapping schemes in order  to avoid the  1024-cylinder
  52.   restriction, controllers were enhanced with a  large onboard cache, and
  53.   on-the-fly disk compression adapters and software  become more and more
  54.   popular, rendering most of the old disk benchmarking software useless.
  55.  
  56.   If  you  are  not familiar  with  terms such  as  "sector-mapping"  and
  57.   "compression  adapters," don't worry. As  a user, you shouldn't  really
  58.   care  whether your  drive has  "skewed-track interleave"  or "low  BIOS
  59.   overhead latency," as long as you get good performance out of it.
  60.  
  61.  
  62.                        Application Level Benchmarks
  63.                                     or
  64.                         Why "your mileage may vary"
  65.  
  66.   Have you  ever been tempted to buy  one of those new "effective  access
  67.   time: 0.5  milliseconds" disk drives?  Look before you  leap: obtaining
  68.   such  a  figure  for  a   current  technology  drive  means  the  drive
  69.   manufacturer is  using a less-than-adequate disk benchmarking  program.
  70.   Such a program can easily be fooled by  the presence of a small onboard
  71.   cache;  by continuously reading  and writing data to  the same area  of
  72.   the disk, the benchmark merely updates  the RAM on the disk controller,
  73.   while  very little disk activity  actually takes place. Updating a  few
  74.  
  75.  
  76.                                                                    Page 2
  77.  
  78.  
  79.  
  80.  
  81.   kilobytes of  RAM in one half  of a millisecond isn't that  impressive,
  82.   and  this will become  evident as soon as  you start running  real-life
  83.   applications.  If  you are  using  a software  disk  cache, as  is  now
  84.   standard  on  most  operating  systems,  you  will  hardly  notice  the
  85.   presence  of an  additional 256KB  controller-based  cache, unless  you
  86.   have a nonstandard configuration or device.
  87.  
  88.   Actual  storage   system  performance  depends  on  an   assortment  of
  89.   parameters:  bus bandwidth, cache  strategy, scatter-gather  algorithm,
  90.   cluster  size  and  fragmentation,  to   name  a  few.  None  of  these
  91.   parameters  are  influenced  by the  physical  characteristics  of  the
  92.   specific hard drive  used, and each of them has more impact  on overall
  93.   storage system performance than the proverbial "average seek time."
  94.  
  95.   The  more advanced  disk  benchmarking programs  try to  eliminate  the
  96.   effects of operating system level  parameters by communicating directly
  97.   to the  disk. Unfortunately, results obtained in this way are  about as
  98.   useful as knowing the top RPM of a car engine when running in neutral.
  99.  
  100.   Two cases  present even vaguer prospects: networks and  disk-arrays. In
  101.   both  cases the  same  hardware can  easily be  configured  to work  in
  102.   different modes, producing a vast range  of performance. With networks,
  103.   network  topology may  be redefined,  and server  configuration may  be
  104.   altered, resulting  in an overall system throughput that has  little to
  105.   do  with the actual  performance of the  drives themselves. The  second
  106.   special  case  is  disk-arrays  configured  as   a  RAID  cluster;  the
  107.   performance of the array as a unit can  be as high as twice or more the
  108.   performance  of  a  single  drive  or as  low  as  a  fraction  of  the
  109.   performance of a single drive.
  110.  
  111.   The  experienced  user will  try  to estimate  the importance  of  each
  112.   performance  feature of  the storage  system, weigh  them against  each
  113.   other, and make a decision based more on intuition than on hard facts.
  114.  
  115.   Eventually, the  user will run the ultimate benchmark: a test  drive of
  116.   the system  with their favorite application. As unscientific as  it may
  117.   seem,  the results of  this test are  more meaningful  than any of  the
  118.   standard benchmarks.
  119.  
  120.   The  application level benchmarking  approach is  defined as testing  a
  121.   system in a manner that resembles  actual usage as closely as possible.
  122.   This  seems  to be  the  most consistent  and  useful approach  to  the
  123.   problem of measuring storage system performance.
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.                                                                    Page 3
  137.  
  138.  
  139.  
  140.  
  141.                     Shortcomings of Existing Benchmarks
  142.                                     or
  143.            Why results are only as good as the measurement tool
  144.  
  145.   *    Cache
  146.  
  147.        Since  most existing disk benchmarking  programs were designed  to
  148.        give  results within  a few  seconds of  activation, they  usually
  149.        perform  their tests by  moving very small  amounts of data.  With
  150.        modern  high-end storage devices  you could  have anywhere from  a
  151.        few  kilobytes to 64  megabytes or more of  cache between the  CPU
  152.        and  the storage system. If  a benchmarking program uses  standard
  153.        file  accesses, most or  all of the data  wouldn't even reach  the
  154.        drive  by  the  time  the measurement  period  is  over,  yielding
  155.        ludicrous  results, such as  a transfer rate  of 20 megabytes  per
  156.        second.  If  the cache  is  embedded within  the hardware,  as  is
  157.        typical  of high-end  SCSI  adapters, it  would present  the  same
  158.        problem for benchmarking software which uses  direct access to the
  159.        drive.  In  order to  measure  the true  effect  of a  cache,  the
  160.        benchmark  should move vast amounts  of data during the test,  use
  161.        huge  files for disk access,  and generally behave like a  typical
  162.        application.  A  good  benchmark  shouldn't  eliminate  the  cache
  163.        effect, but rather measure the true  benefit an actual application
  164.        will gain by the presence of that cache.
  165.  
  166.  
  167.   *    Compression
  168.  
  169.        Disk  compression hardware and  utilities are  new players in  the
  170.        small-computer  arena. Before data is  written to the drive it  is
  171.        compressed  either by a software  device driver or by a  dedicated
  172.        hardware adapter.  During reads, data is uncompressed back  to its
  173.        original  form. Best  performance  is achieved  when the  data  is
  174.        highly  regular,  such  as  is common  in  large  spreadsheets  or
  175.        databases.  However,  as the  ratio  between  CPU speed  and  disk
  176.        throughput  grows,  new  applications  will   have  built-in  data
  177.        compression,  especially those  dealing  with highly  compressible
  178.        data, such as video and music.  When this happens, the benefits of
  179.        disk-based compression will diminish. A  typical disk benchmarking
  180.        program  uses either fixed  data blocks  or whatever garbage  data
  181.        happens  to be in  memory at the  time. In  either case, the  data
  182.        tends to  be highly compressible, resulting in  exceptionally high
  183.        test  scores for transfer rate.  In order to obtain true  results,
  184.        the benchmark  should use data patterns which resemble  the actual
  185.        data as  closely as possible. Since this is  virtually impossible,
  186.        the next best thing is to select a  reference pattern which can be
  187.        easily  defined and whose  maximum compression  ratio is known  in
  188.        advance. The  only data pattern that meets both of  these criteria
  189.        is an  incompressible pattern. Information theory assures  us that
  190.        a  suitable pseudorandom  sequence has  zero  redundancy and  thus
  191.        cannot  be  compressed.  As  far  as   the  compression  logic  is
  192.        concerned,   a  pseudorandom   sequence  seems   identical  to   a
  193.        pre-compressed sequence.
  194.  
  195.  
  196.                                                                    Page 4
  197.  
  198.  
  199.  
  200.  
  201.   *    Multi-threading
  202.  
  203.        A  drive  with  a  long  seek  time  may  perform  very  well  for
  204.        sequential  accesses,  but  it will  cease  doing so  as  soon  as
  205.        several  threads are  running concurrently,  even  if all  threads
  206.        access  the same file, and  all do so sequentially. The  necessity
  207.        to  switch tasks results  in multiple seeks up  to a point  where,
  208.        with a  sufficiently large number of threads, the behavior  of the
  209.        drive  will resemble totally  random access.  The extent to  which
  210.        this effect  will degrade performance cannot be  computed a-priori
  211.        using  only  the  knowledge  of average  random  access  time  and
  212.        transfer rate,  and thus has to be  tested per se. A small  number
  213.        (3-6)  of concurrent threads  is usually enough  to feel the  full
  214.        effect of sequential access degradation.
  215.  
  216.  
  217.   *    Sequential vs. Random
  218.  
  219.        Existing  benchmarks generally  divide the type  of disk  accesses
  220.        into  two   categories:  sequential  access  and  random   access.
  221.        However, in real life, only  very few of the applications actually
  222.        behave  this way. A modern  disk controller with a high  bandwidth
  223.        and  deferred-write  caching  can almost  totally  eliminate  seek
  224.        latency  for  applications  performing only  a  small  portion  of
  225.        random  accesses. The same drive,  when used with a  write-through
  226.        cache,  might perform almost as  slowly as fully random access.  A
  227.        good benchmark should present the system  with the correct mixture
  228.        of sequential and random accesses in order to get valid results.
  229.  
  230.  
  231.   *    Combining reads and writes
  232.  
  233.        Much  like  combining sequential  and  random accesses,  again,  a
  234.        mixture of read and write  requests may yield results which differ
  235.        substantially  form the  'expected' weighed  average  of the  two.
  236.        With  the  proper logic  programmed  in  the drive  controller  or
  237.        device   driver,  and   the   appropriate  scatter/gather   method
  238.        implemented in  the operating system, read and write  requests can
  239.        be overlapped from the CPU's  point of view, resulting in superior
  240.        throughput.  Some  of  the  more   rudimentary  disk  benchmarking
  241.        programs  do not perform  any writes at all  during the test,  and
  242.        simply  assume the transfer  rate is the same  as for reads.  This
  243.        assumption  falls apart  when RAID  class  devices are  concerned.
  244.        Depending  on RAID  level  and architecture,  the time  needed  to
  245.        write a block  may differ from the time it takes to read  the same
  246.        block  by a factor  of two  or more. An  inherently sluggish  RAID
  247.        device  may seem exceptionally  fast when  tested by only  reading
  248.        existing  data, or when the  mixture of read and write  operations
  249.        does not match the actual application mixture.
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.                                                                    Page 5
  257.  
  258.  
  259.  
  260.  
  261.                     Defining a Reference Disk Benchmark
  262.                                     or
  263.                             What's a RAIDmark?
  264.  
  265.   The  DynaTek RAIDmark  utility is  intended to  measure the  integrity,
  266.   performance,  and  cost-efficiency  of  any  read/write  random  access
  267.   (blocked  I/O) storage subsystem in  terms that are meaningful for  the
  268.   layman, and that depict the apparent  usefulness the user gets from the
  269.   system. RAIDmark is also intended  to measure some low-level metrics of
  270.   the storage  device, which can be utilized for testing  and fine-tuning
  271.   such devices throughout the phases of on-site installation.
  272.  
  273.   The  RAIDmark  utility  defines  a  set of  six  standard  tests,  each
  274.   simulating a  typical I/O-bounded computer environment. For  each test,
  275.   the  tested system receives a  grade proportional to its throughput.  A
  276.   unit of 'One RAIDmark' is defined  as the measured throughput (for each
  277.   test) of an  IBM PS/2 model 95 with the standard IBM 150 MB  hard disk.
  278.   Integrity  is  tested  on  a  go/no-go   basis  using  32-bit  checksum
  279.   verification on each record.
  280.  
  281.   *    Low-level performance
  282.  
  283.        The  utility measures raw indexes  of storage device  performance:
  284.        average  access time,  read/write transfer  rate, effective  cache
  285.        size and cache strategy.
  286.  
  287.   *    High-level performance
  288.  
  289.        The utility tests the performance  of the storage subsystem on the
  290.        application level, checking the subsystem's  ability to respond to
  291.        harsh real-world data traffic of  typical heavy load environments.
  292.        The   utility  simulates  data  flow   of  several  typical   work
  293.        environments and  measures system response and throughput  in each
  294.        of  the test  cases, giving  a combined  figure of  merit for  the
  295.        system's performance in each scenario.
  296.  
  297.        The following scenarios are simulated and tested:
  298.  
  299.        -    Typical  workstation applications  -  multiuser (3-10  users)
  300.             environment, many  small- to medium-size file requests,  most
  301.             of  which are  read-only accesses  with  less frequent  large
  302.             file  read/write  operations  (as in  CAD/CAM  file  save  or
  303.             memory swap).
  304.  
  305.        -    Transaction processing  environment - 5-50 users, many  small
  306.             record   read  and  update   requests,  reports  and   backup
  307.             processes running  in the background, transaction logbook  as
  308.             a large sequential file.
  309.  
  310.        -    Video/audio/multimedia  applications - single  or few  users,
  311.             huge  sequential  access  files, with  both  read  and  write
  312.             requests.
  313.  
  314.  
  315.  
  316.                                                                    Page 6
  317.  
  318.  
  319.  
  320.  
  321.        -    Database  query  systems -  5-200  users, many  small  record
  322.             accesses,  almost  all  of  which   are  read-only;  updates,
  323.             reports and backup are executed during system off-line time.
  324.  
  325.        -    Data  logging - up  to several hundreds  of sites, many  very
  326.             small  random   write  accesses  (typically  20-100   bytes),
  327.             reports and backup are executed during system off-line time.
  328.  
  329.        -    Archiving  -  few  users  with  large  sequential  read/write
  330.             accesses.
  331.  
  332.   *    Degraded subsystem performance
  333.  
  334.        When the subject of the tests  is a RAID-class storage system, the
  335.        user can  disable one of the subsystem elements, and  then proceed
  336.        to measure the degraded performance in this hindered setup.
  337.  
  338.   *    Design constraints and limitations
  339.  
  340.        -    Free disk space
  341.  
  342.             In  order for the  RAIDmark utility to  conduct the tests  it
  343.             should be able to create  files of several megabytes each, or
  344.             even   larger,  if  caching  effects   are  to  be   measured
  345.             accurately.  For best accuracy, at  least 150MB of free  disk
  346.             space should be available on the tested drive.
  347.  
  348.        -    Operating system interface
  349.  
  350.             When  using a  multi-processing  environment, all  benchmarks
  351.             should be run as a sole  process, otherwise time measurements
  352.             will be of little value.
  353.  
  354.        -    Integrity and stability
  355.  
  356.             The  ability of RAID-class devices  to operate with parts  of
  357.             the  subsystem  inoperable  (or   altogether  missing)  might
  358.             create a  situation in which the  user is not aware that  the
  359.             system  is  operating  under  highly  unfavorable  conditions
  360.             which adversely  affect the benchmark. Moreover, modern  disk
  361.             controllers can  overcome some physical mishaps, such  as bad
  362.             sectors, unaligned heads, etc., relying  on firmware logic to
  363.             correct   these   problems  at   the  expense   of   degraded
  364.             performance.  The  user  should  identify  and  isolate  such
  365.             conditions, possibly  by testing for stability over  time and
  366.             over different areas of the disk platters.
  367.  
  368.        -    DOS FAT Latency
  369.  
  370.             When  using top-level MS-DOS file  I/O requests, each  random
  371.             file  seek requires  the operating  system to  scan the  file
  372.             allocation  table (FAT)  from the  location  pointing to  the
  373.             beginning  of  the file,  to  the  location pointing  to  the
  374.  
  375.  
  376.                                                                    Page 7
  377.  
  378.  
  379.  
  380.  
  381.             requested cluster.  Although the FAT is usually kept  in RAM,
  382.             for  large   files  this  sequential  scanning  process   may
  383.             actually take  longer than the physical movement of  the disk
  384.             arm.  Some advanced  applications  (database managers,  etc.)
  385.             overcome this  delay by keeping several logical  entry points
  386.             to  the file ("file handles")  scattered at different  points
  387.             in the  file. Access is then achieved using the  nearest file
  388.             handle, reducing  FAT latency by a factor of 10 to  20. Other
  389.             applications,  such  as  MS-Windows  3.0/3.1  Virtual  Memory
  390.             Manager, implement their own file system  to achieve zero FAT
  391.             latency.  More modern operating systems,  such as OS/2  HPFS,
  392.             achieve  the same favorable  results using advanced  built-in
  393.             random seek methods.
  394.  
  395.             For  the  sake of  being  as  general as  possible,  RAIDmark
  396.             measures  the  exact FAT  latency  on  the tested  system  by
  397.             comparing the average access times for  clusters located in a
  398.             limited  region near the  beginning of the  file to those  of
  399.             clusters  located in a  similar size region  near the end  of
  400.             the file.  The average FAT latency is then deducted  from all
  401.             random  access test times, giving  the theoretical limit  for
  402.             an 'optimally tuned' application.
  403.  
  404.   *    Test files
  405.  
  406.        Test  files are  homogeneous streams of  random values,  logically
  407.        accessed  as an array of  32-bit unsigned integers. The stream  is
  408.        logically   subdivided    into   records   of   16    double-words
  409.        (long-words), each containing an embedded checksum.
  410.  
  411.        Each  record in a  test file contains 16  double-words of 32  bits
  412.        each.   Fifteen  of   these  double-words  are   generated  by   a
  413.        pseudorandom  number generator.  The 16th value  is calculated  in
  414.        such  a way  that the  sum of  all words  in the  record plus  the
  415.        offset  of the record  from the beginning of  the file (in  bytes)
  416.        equals  zero (modulo 2^32). This  file structure enables the  user
  417.        to  create files  that  are incompressible  by nature,  but  still
  418.        allows  the  user to  verify  the validity  of  the data  with  an
  419.        error-detection  probability  of  near  certainty.  However,  this
  420.        method  requires one  multiplication and  two addition  operations
  421.        per  32-bit integer during  file creation,  but only one  addition
  422.        per double-word during read access.
  423.  
  424.        To  prevent  meaningless  results  obtained  from  slow  processor
  425.        machines  with concurrent disk access,  a 32KB block of data  (512
  426.        records  of 64  bytes) is  prepared in advance,  and records  from
  427.        this  block are written  to the disk at  file creation, with  only
  428.        one word  in each 16-word record changed for each  write operation
  429.        to account for different file offsets.  This will give even a slow
  430.        CPU ample time to complete  data preparation before the next write
  431.        operation is due.
  432.  
  433.  
  434.  
  435.  
  436.                                                                    Page 8
  437.  
  438.  
  439.  
  440.  
  441.        Theoretically, data  created in the method described above  can be
  442.        compressed. However,  there is currently no compression  algorithm
  443.        capable of detecting the 256Kbit-long  patterns created using this
  444.        method.
  445.  
  446.        A question arises as to the  extent to which this random-data file
  447.        serves as a  good test case, since in reality most data  files are
  448.        compressible by  30%-60% or, in some homogeneous  data acquisition
  449.        applications, up to 80%; however,  using compressible data exposes
  450.        us  to the vast range  of compression algorithms, each having  its
  451.        own  peculiarities  regarding specific  data  patterns,  sometimes
  452.        resulting  in a  twofold factor  in throughput  for some  specific
  453.        instance. Hence, the approach taken in  RAIDmark is the worst-case
  454.        compression scenario, in which all algorithms  behave in a similar
  455.        fashion, namely, no compression occurs.
  456.  
  457.        In  a  future  version  the  user  may  be  given  the  option  of
  458.        generating semi-random  ("pink noise") data files, permitting  the
  459.        compression mechanism to affect results.
  460.  
  461.  
  462.        -    Test File Creation
  463.  
  464.             If  any of  the  disk tests  is requested,  a  128MB file  is
  465.             created.  This process  is timed as  accurately as  possible,
  466.             both  the initial  file open  operation, and  the writing  of
  467.             data on  the disk. Measurement is done separately  for chunks
  468.             of  data of  varying sizes.  The  first two  chunks are  16KB
  469.             long, the third is 32KB long, the fourth  -- 64KB, and so on,
  470.             with the  8th chunk being 1MB long. The remaining  1MB chunks
  471.             are written to bring the total to the final size.
  472.  
  473.             The  128MB file  size was  chosen  arbitrarily, being  larger
  474.             than  today's biggest disk  cache units,  but less than  half
  475.             the  size of modern  high capacity disks.  This is a  default
  476.             value,  intended  to  become  the  'RAIDmark  standard,'  but
  477.             values ranging  from 1MB to 1GB are implemented  and selected
  478.             using  a command line  option. Test  files smaller than  16MB
  479.             might  produce  inaccurate  results, and  the  user  will  be
  480.             warned in  case such a selection was made. Using  the default
  481.             file  size,  each  separate  test will  take  between  a  few
  482.             seconds  and  two minutes  to complete,  permitting  accurate
  483.             measurement  without seizing  the system  for an  intolerable
  484.             duration. There  are 14 separate tests in a  full test-suite,
  485.             so with all the testing overhead,  running the full benchmark
  486.             may take the better part of an hour.
  487.  
  488.  
  489.        -    Determine deferred-write cache size
  490.  
  491.             During  the  file  creation phase,  effective  transfer  rate
  492.             throughput  is   measured  for  increasing  data  chunks   as
  493.             described  above.  If the  system contains  a  deferred-write
  494.  
  495.  
  496.                                                                    Page 9
  497.  
  498.  
  499.  
  500.  
  501.             cache, the  first few chunks will  take a very short time  to
  502.             be written,  usually exhibiting a throughput in excess  of 10
  503.             megabytes per second. At some  point, throughput will decline
  504.             sharply.  This point in  the data flow marks  the end of  the
  505.             posted write  cache. With systems employing dynamic  caching,
  506.             the value  obtained for the cache size may be  arbitrary, but
  507.             if  the test is  run on  an otherwise idle  system, the  size
  508.             detected  will be  close  to the  maximum possible  for  that
  509.             system.
  510.  
  511.             Note  that in  order for  this  test to  run accurately,  the
  512.             system should be given enough  time to "rest" before the test
  513.             commences  in order to  enable previously  cached data to  be
  514.             flushed  to disk  by the  cache logic. The  user should  wait
  515.             until all previous disk activity  ceases before starting this
  516.             test.
  517.  
  518.  
  519.        -    Determine raw transfer rate for write
  520.  
  521.             After  obtaining an  upper bound for  the posted-write  cache
  522.             size,   the  actual  non-cached   transfer  rate  for   write
  523.             operations is  measured by first writing data to  a different
  524.             location  on the  drive. The  amount of  data written  should
  525.             exceed  the size  of the computed  deferred-write cache.  The
  526.             benchmark then compares total write times  for data chunks of
  527.             different  sizes,  specifically  8KB  and   32KB  blocks.  By
  528.             subtracting the  two, all fixed-overhead delays are  canceled
  529.             out, and  the net result is the  time it takes to write  24KB
  530.             of data.
  531.  
  532.             This figure for transfer rate  will usually be lower than the
  533.             nominal  figure quoted by the  drive manufacturer, since  the
  534.             measurement  involves drive head  movements (seek and  search
  535.             operations),   operating  system  and   BIOS  overhead,   and
  536.             cache-miss delays.  However, the figure obtained this  way is
  537.             a  more meaningful  measure of  subsystem performance,  since
  538.             this  is   the  actual  throughput  as  experienced   by  the
  539.             application  and   the  end  user.  Delays  created   by  the
  540.             benchmarking  process utility itself  are taken into  account
  541.             and removed from the delay measurement.
  542.  
  543.             During  the "post-cache" phase  of writing,  each of the  1MB
  544.             chunks  of data should  take approximately  the same time  to
  545.             complete.  If the  variability is higher  than expected,  the
  546.             user  will  be  warned  of  the  system's  instability.  This
  547.             situation  may arise when  other processes  in the system  or
  548.             the  network are  active, when  the  cache strategy  involves
  549.             some  exotic algorithm, when the  disk is highly  fragmented,
  550.             when many bad sectors are  scattered on the disk's test area,
  551.             or when  a "flaky" drive causes retried attempts for  some of
  552.             the  operations. The  user has  the choice  of repeating  the
  553.  
  554.  
  555.  
  556.                                                                   Page 10
  557.  
  558.  
  559.  
  560.  
  561.             test,   or   else   referring   to   the   user   guide   for
  562.             troubleshooting advice.
  563.  
  564.  
  565.        -    Determine raw transfer rate for read
  566.  
  567.             Transfer  rate  for sequential  read  access is  measured  by
  568.             comparing  total  read times  for  data chunks  of  different
  569.             sizes, specifically  8KB and 32KB blocks. By  subtracting the
  570.             two, all fixed-overhead delays are canceled  out, and the net
  571.             result is the time it takes to read 24KB of data.
  572.  
  573.  
  574.        -    Main test executive
  575.  
  576.             The main test executive procedure is  a generic routine whose
  577.             input parameters  define the real-life environment each  test
  578.             case is supposed to simulate. Parameters include:
  579.  
  580.             - record size
  581.  
  582.             - distribution of access type
  583.  
  584.             - number of users or processing threads
  585.  
  586.             The  procedure determines the number  of times the tests  are
  587.             to  be repeated as  a function  of the duration  of a  single
  588.             test.  The rule is  that, by default,  each test case  should
  589.             take from  a few seconds to around two minutes. If  the total
  590.             desired  testing time of the  complete benchmark is given  on
  591.             the  command  line,  the  duration of  each  single  test  is
  592.             adjusted  accordingly. This time  does not include  benchmark
  593.             overhead, such as file creation  and cache overflowing, hence
  594.             total benchmark duration may be  considerably longer than the
  595.             command line parameter.
  596.  
  597.  
  598.        -    Build random block
  599.  
  600.             This routine creates a 32KB  block in memory for writing onto
  601.             the  disk during the file  creation phase. The format of  the
  602.             block is  described above. The algorithm used  for generating
  603.             random numbers  is the Linear-Congruential method  (described
  604.             in  D.E. Knuth, "The  Art of  Computer Programming" Vol.  2).
  605.             The  location used for inserting  the checksum word for  each
  606.             record is the location (first  four bytes) of each record. In
  607.             order  to account for different  file offsets, this  location
  608.             is updated for each instance of writing the 32KB block.
  609.  
  610.  
  611.  
  612.  
  613.  
  614.  
  615.  
  616.                                                                   Page 11
  617.  
  618.  
  619.  
  620.  
  621.                                 Conclusion
  622.  
  623.   In  order to help  the user select a  storage system and  configuration
  624.   that will  match their computing needs, a standard  reference benchmark
  625.   for  measuring storage  system performance has  been defined.  Existing
  626.   disk  benchmarking programs  fall short when  measuring modern  'smart'
  627.   storage systems, or when unusual  disk configurations are used. Many of
  628.   the most important performance factors  are not taken into account, and
  629.   the  characteristics of the user's  application don't play any role  in
  630.   the  measurement when these  utilities are  used. The DynaTek  RAIDmark
  631.   has  been  created  to  overcome these  limitations,  operating  as  an
  632.   application-level benchmark  program. RAIDmark measures storage  system
  633.   performance  in various  typical environment  conditions, and  provides
  634.   the  user with a  good indication of the  expected usefulness of  their
  635.   system.
  636.  
  637.  
  638.  
  639.   *    Technical reference
  640.  
  641.        -    Patterson, David A.; Gibson, Garth; Katz, Randy H.:
  642.             "A  Case for Redundant Arrays  of Inexpensive Disks  (RAID)";
  643.             ACM SIGMOD (Chicago, 1988).
  644.  
  645.        -    Patterson, David A.; Chen, Peter;  Gibson, Garth; Katz, Randy
  646.             H.:
  647.             "An  Introduction to  Redundant Arrays  of Inexpensive  Disks
  648.             (RAID)"; IEEE 1989.
  649.  
  650.        -    Integra Technologies, Inc. - Graham, Richard A.:
  651.             "Redundant Arrays of Inexpensive Disks" (1991)
  652.  
  653.        -    Finney, Kenneth C.; Graham, Richard A.:
  654.             "A Discussion of RAID Technology"; DynaTek/Integra, 1992.
  655.  
  656.  
  657.  
  658.  
  659.  
  660.   DynaTek and RAIDmark are trademarks of Dynatek Automation Systems Inc.
  661.  
  662.   HPFS,  IBM, Integra, MS-DOS, MS-Windows,  OS/2 and PS/2 are  registered
  663.   trademarks of their respective holders.
  664.  
  665.  
  666.  
  667.  
  668.  
  669.  
  670.  
  671.  
  672.  
  673.  
  674.  
  675.  
  676.                                                                   Page 12
  677.